﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// NotReviewedButNeeded

#pragma once

#include "GcmpCommonEdit.h"

namespace gcmp
{
    class IActionOffsetBehavior;

    /// \brief 配置偏移操作Action的生成器OffsetActionCreator参数
    class GCMP_COMMON_EDIT_EXPORT ActionOffsetInput
    {
    public:
        /// \brief 构造函数
        /// \param opActionBehavior 偏移操作Action的Behavior
        ActionOffsetInput(OwnerPtr<gcmp::IActionOffsetBehavior> opActionBehavior);

        /// \brief 析构函数
        ~ActionOffsetInput() {}

    public:
        /// \brief 获取偏移操作Action的Behavior
        /// \return 偏移操作Action的Behavior指针
        OwnerPtr<IActionOffsetBehavior> GetOffsetBehavior();

        /// \brief 设置偏移操作Action的Behavior
        /// \param opActionBehavior 偏移操作Action的Behavior
        /// \return void
        void SetOffsetBehavior(OwnerPtr<gcmp::IActionOffsetBehavior> opActionBehavior);

    private:
        OwnerPtr<gcmp::IActionOffsetBehavior> m_opActionBehavior;
    };
}
